package com.encol.mp;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.text.SimpleDateFormat;
import java.util.Date;


/**
 * @Author:Encol
 * @Date:20:31 2021/9/24
 * @Description:User实体类属性自动填充，在我们向数据库插入一条数据的时候，
 * 少不了一些向createTime、updateTime此类字段，每次插入的数据都要设置这些个值，
 * 通过实现MetaObjectHandler接口重写insertFill、updateFill方法可以实现自动填充
 * 步骤：1：编写MetaObjectHandler
 *      2：实体类上边加上@TableField(fill = FieldFill.INSERT_UPDATE)
 * 注意:要想属性填充生效，更新时必须携带实体类
 */
@Component
public class UserAutoFillConfig  implements MetaObjectHandler {
    @Override//插入时属性自动填充
    public void insertFill(MetaObject metaObject) {
        Object status = getFieldValByName("status", metaObject);
        Object createTime = getFieldValByName("createTime", metaObject);
        if (status==null) {
            setFieldValByName("status", 1, metaObject);
        }

//        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
//        String date = simpleDateFormat.format(new Date());
        if (createTime==null) {
            setFieldValByName("createTime",new Date(),metaObject);
            }
        }


    @Override
    public void updateFill(MetaObject metaObject) {

    }
}